package com.yunkeji.dao.domain;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
import com.yunkeji.common.core.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * 用户基本信息-扩展对象 ykj_app_user_ext
 *
 * @author 老张
 * @date 2024-06-05
 */
@Data
@EqualsAndHashCode(callSuper = true)
@TableName(value = "ykj_app_user_ext", autoResultMap = true)
@Accessors(chain = true)
public class AppUserExt extends BaseEntity {

    private static final long serialVersionUID = 1L;

    /** 自增主键 */
    @TableId(value = "id")
    private Long id;

    /** 年龄 */
    private Integer age;
    /** 身高，单位cm */
    private Integer height;
    /** 头像路径 */
    private String headUrl;
    /** 出生日期 */
    private Date birthDate;
    /** 学历 */
    private Integer education;
    /** 职业 */
    private Integer profession;
    /** 星座 */
    private Integer constellation;
    /** 感情状态 */
    private Integer sentiment;
    /** 接受约会 */
    private Integer tryst;
    /** 接受同居 */
    private Integer liveTogether;
    /** 心情 */
    private Integer mood;
    /** 居住城市 */
    private Long liveCity;
    /** 居住省份 */
    private Long liveProvince;
    /** 爱好 */
    @TableField(typeHandler = JacksonTypeHandler.class)
    private List<Integer> hobby;
    /** 身份证号码 */
    private String cardNum;
    /** 真实姓名 */
    private String realName;
    /** 身份证图片 */
    private String cardAuthUrl;
    /** 真人认证视频 */
    private String videoAuthUrl;
    /** 最近动态 */
    @TableField(typeHandler = JacksonTypeHandler.class)
    private List<String> momentsPics;
    /** 语音介绍 */
    private String voiceIntro;
    /** 视频介绍 */
    private String videoIntro;

    /** 相册 */
    @TableField(exist = false)
    private List<AppUserAlbum> albumPics;
    /** 最后一次接听电话的时间 */
    private Date latestCallDate;
    /** 注册时间 */
    private Date regDate;
    /** 通话评分 */
    private BigDecimal callScore;
    /** 通话总次数 */
    private BigDecimal callCount;
    /** 最后登录IP */
    private String loginIp;
    /** 最后登录时间 */
    private Date loginDate;
    /** 接通成功次数 */
    private Integer callSuccess;
    /** 接通失败次数 */
    private Integer callFail;
    /** 已经免费发送文本的次数 */
    private Integer freeMsgCount;
    /** 通话总分钟数 */
    private Integer callDurationSum;
    /** 通话等级经验值,真人认证才会有 */
    private Integer levelExp;
    /** 体重 */
    private Integer weight;
    /** 体格体型 */
    private Integer physique;
    /** 收入 */
    private Integer income;
    /** 用户昵称 */
    private String nickName;
    /** 语音介绍-时长 */
    private Integer voiceIntroTime;
    /** 视频介绍 */
    private Integer videoIntroTime;
    /** 视频介绍-封面 */
    private String videoIntroCover;
    /** 视频介绍-封面-gif */
    private String videoIntroCoverGif;
}
